package com.ruoyi.jzzgl.mapper;

import cn.hutool.core.date.DateTime;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.common.mybatis.core.mapper.BaseMapperPlus;
import com.ruoyi.jzzgl.domain.bo.JzzglSkjlBo;
import com.ruoyi.jzzgl.domain.entity.JzzglSkjl;
import com.ruoyi.jzzgl.domain.vo.JzzglSkjlVo;
import org.apache.ibatis.annotations.MapKey;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;

import java.util.List;
import java.util.Map;
import java.util.Date;

/**
 * @author xq
 * @description 针对表【jzzgl_skjl】的数据库操作Mapper
 * @createDate 2025-01-06 02:01:54
 * @Entity com.ruoyi.jzzgl.domain.entity.JzzglSkjl
 */
public interface JzzglSkjlMapper extends BaseMapperPlus<JzzglSkjl, JzzglSkjlVo> {

    @MapKey("stationName")
    List<Map<String, Object>> selectStationRank(@Param("limit") Integer limit);

    // 修改带老年人的排行查询（无站点ID）
    @MapKey("stationName")
    List<Map<String, Object>> selectStationRankWithElderly(
        @Param("limit") Integer limit,
        @Param("elderlyDate") Date elderlyDate,
        @Param("startTime") Date startTime,
        @Param("endTime") Date endTime);

    // 修改带老年人的排行查询（指定站点ID）
    @MapKey("stationName")
    List<Map<String, Object>> selectStationRankWithElderlyById(
        @Param("stationId") Integer stationId,
        @Param("elderlyDate") Date elderlyDate,
        @Param("startTime") Date startTime,
        @Param("endTime") Date endTime);

    IPage<JzzglSkjlVo> selectSkjlPageList(Page<JzzglSkjlVo> page, JzzglSkjlBo bo);

    @MapKey("date")
    List<Map<String, Object>> selectTrendData(
        @Param("stationId") Integer stationId,
        @Param("elderlyDate") Date elderlyDate,
        @Param("startTime") Date startTime,
        @Param("endTime") Date endTime);
}






